An Approach to Polyvariant Binding Time Analysis for a Stack-Based Language
نویسنده
چکیده
Binding time analysis (BTA) is used in specialization by means of partial evaluation method. Usual BTA only annotates a source program. Polyvariant BTA transforms a source program to an annotated one. Polyvariant BTA is known technique for functional languages. In this paper polyvariant BTA for a model imperative stack-based language is presented. It is described by means of building annotated control-flow graph for a source program.
منابع مشابه
Polyvariant Expansion and Compiler Generators
Polyvariant expansion is a binding-time-improving transformation for ooine partial evaluation. We show how to achieve it automatically for a higher-order functional language using the interpretive approach. We have designed and implemented an interpreter that statically propagates binding times. When specialized with respect to a source program, it performs polyvariant expansion. Extending the ...
متن کاملBinding-time Analysis for Mercury
In this work, we develop a binding-time analysis for the logic programming language Mercury. We introduce a precise domain of binding-times, based on the type information available in Mercury programs, that allows the analyser to reason with partially static data structures. The analysis is polyvariant, and deals with the module structure and higher-order capabilities of Mercury programs.
متن کاملA Transformational Approach to Polyvariant BTA of Higher-Order Functional Programs
We introduce a transformational approach to improve the first stage of offline partial evaluation of functional programs, the so called binding-time analysis (BTA). For this purpose, we first introduce an improved defunctionalization algorithm that transforms higher-order functions into first-order ones, so that existing techniques for termination analysis and propagation of binding-times of fi...
متن کاملA polyvariant type analysis for Erlang
This paper presents a type analysis for the programming language Erlang. The analysis computes interprocedural control-flow and data-flow information, and should be applicable to any higher-order functional programming language with call-by-value semantics. The analysis uses a novel method for polyvariance, static limiting, where an approximation of the call graph is analyzed to determine wheth...
متن کاملCorrectness of a region-based binding-time analysis
A binding-time analysis is the rst pass of an ooine partial evaluator. It determines which parts of a program may be executed at specialization time. Region-based binding-time analysis applies to higher-order programming languages with rst-class references. The consideration of eeects in the determination of binding time properties makes it possible to have a partial evaluator perform assignmen...
متن کامل